package com.itlong.cloud.smartcard.service;

import com.itlong.cloud.POJO.DTO.smartcard.SmartCardOldDeviceInfoDTO;
import com.itlong.cloud.POJO.DTO.smartcard.SmartCardOldGetDevicesPageDTO;
import com.itlong.cloud.POJO.DTO.smartcard.SmartCardOldUpdateDeviceInfoDTO;
import com.itlong.cloud.POJO.VO.smartcard.SmartCardOldDeviceInfoVO;
import com.itlong.cloud.utils.page.Page;

import java.util.List;

/**
 * <desc>
 *      旧一卡通_更新电梯楼层对应表数据接口。
 * <desc/>
 *
 * @createDate 2017/11/22.
 */
public interface ISmartCardOldDeviceInfoService {

     /**
      * <desc>
      *      旧_一卡通更新电梯楼层对应表。
      * <desc/>
      *
      * @param  saveDTO 请求参数
      * @return
      * @author shengen.T
      * @createDate 2017/11/22
      */
    Integer updateFloorConfig(SmartCardOldDeviceInfoDTO saveDTO) throws Exception;

     /**
      * <desc>
      *      旧_一卡通获取设备列表。
      * <desc/>
      *
      * @param  pageDTO
      * @return
      * @author shengen.T
      * @createDate 2017-12-05
      */
    Page<SmartCardOldDeviceInfoVO> getDevicePage(SmartCardOldGetDevicesPageDTO pageDTO) throws Exception;

     /**
      * <desc>
      *      旧_一卡通更新设备信息。
      * <desc/>
      *
      * @param updateDTO 更新设备信息参数
      * @return
      * @author shengen.T
      * @createDate 2017-12-12
      */
     boolean updateDeviceInfo(SmartCardOldUpdateDeviceInfoDTO updateDTO) throws Exception;


     /**
      * <desc>
      *      旧一卡通_添加设备。
      * <desc/>
      *
      * @param  deviceInfo 设备信息
      * @return 
      * @author shengen.T
      * @createDate 2017-12-12
      */
    boolean addDeviceInfo(SmartCardOldUpdateDeviceInfoDTO deviceInfo) throws Exception;


    /**
     * <desc>
     *      获取某项目中的设备唯一码列表
     * <desc/>
     *
     * @param projectId 项目编号
     * @param deviceType 设备类型：1-电梯，2-门禁
     * @return
     * @author Chunjian.G
     * @createDate 2017-12-15
     */
    List<String> getDeviceUniques(String projectId, Integer deviceType) throws Exception;

    /**
     * <desc>
     *      添加默认设备
     * <desc/>
     *
     * @param deviceUniques 设备唯一码列表
     * @param deviceType 设备类型：1-电梯，2-门禁
     * @param projectId 项目编号
     * @return
     * @author Chunjian.G
     * @createDate 2017-12-15
     */
    Integer addDefaultDevices(List<String> deviceUniques, Integer deviceType, String projectId) throws Exception;


}
